#ifndef GLOBALES_H_INCLUDED
#define GLOBALES_H_INCLUDED

#define NO_HAY_ERRORES 0

typedef enum {
  ebFalse = 0,
  ebTrue = 1
} eBoolean;

typedef enum {
  TOKEN_VACIO,          /* 00 */
  TOKEN_STRING,         /* 01: cadena de caracteres */
  TOKEN_NUMERO,         /* 02: numero en punto flotante */
  TOKEN_OBJETO_EMPIEZA, /* 03: inicio de objeto '{' */
  TOKEN_OBJETO_TERMINA, /* 04: fin de objeto '}' */
  TOKEN_ARRAY_EMPIEZA,  /* 05: inicio de array '[' */
  TOKEN_ARRAY_TERMINA,  /* 06: fin de array ']' */
  TOKEN_COMA,           /* 07: coma ',' */
  TOKEN_DOSPUNTOS,      /* 08: dos puntos ':' */
  TOKEN_TRUE,           /* 09 */
  TOKEN_FALSE,          /* 10 */
  TOKEN_NULL            /* 11 */
} eTipoToken;

typedef enum {
  CB_COMIENZA_ARRAY,    /* 00 */
  CB_TERMINA_ARRAY,     /* 01 */
  CB_COMIENZA_OBJETO,   /* 02 */
  CB_TERMINA_OBJETO,    /* 03 */
  CB_CLAVE,             /* 04 */
  CB_TRUE,              /* 05 */
  CB_FALSE,             /* 06 */
  CB_NULL,              /* 07 */
  CB_NUMERO,            /* 08 */
  CB_STRING             /* 09 */
} evento;

typedef struct _token {
  eTipoToken m_ettTipo;
  char* m_szDato;
} Token;

typedef struct _TClave_Valor {
  char* m_szClave;
  char* m_szValor;
} TClave_Valor;

typedef struct _tweet_user {
  char* m_szUser;
} tweet_user;

void strcpyMem(char* szDestino[], const char* szCadena);

void strcat2Mem(char* acCadena[], char c);

#endif /* GLOBALES_H_INCLUDED */
